package br.com.medvagas.negocio.facade.p;

import java.util.List;

import br.com.medvagas.comum.entidade.EsperienciaProfissional;
import br.com.medvagas.comum.entidade.FormacaoAcademicaTitulacao;
import br.com.medvagas.comum.entidade.FormacaoComplementar;
import br.com.medvagas.comum.entidade.LinguaEstrangeira;
import br.com.medvagas.comum.entidade.ParticipacaoEvento;
import br.com.medvagas.comum.entidade.UsuarioDescadastrado;
import br.com.medvagas.comum.entidade.UsuarioProfissional;
import br.com.medvagas.comum.entidade.Vaga;
import br.com.medvagas.comum.entidade.VagaUsuarioProfissional;
import br.com.medvagas.comum.entidade.vo.VOConsultaVaga;

public interface IManterProfissional {

	String NOME = "manterProfissional";
	
	UsuarioProfissional cadastrar(UsuarioProfissional up);
	UsuarioProfissional alterar(UsuarioProfissional up);
	UsuarioProfissional consultarPorId(Integer idUsuarioProfissional);
	void alterarSenha(Integer idUsuarioProfissional, String senhaAtual,	String senhaNova);
	List<VOConsultaVaga> pesquisarVaga(Vaga vaga, Integer idUsuarioProfissional);
	List<VOConsultaVaga> consultarVagaCandidato(Integer idUsuarioProfissional);
	void candidatar(VagaUsuarioProfissional vup);
	UsuarioProfissional consultarCurriculo(Integer idUsuarioProfissional);
	
	void addFormacaoAcademica(FormacaoAcademicaTitulacao formacaoAcademica);
	void excluirFormacaoAcademica(Integer idFormacaoAcademicaTitulacao);
	void addFormacaoComplementar(FormacaoComplementar formacaoComplementar);
	void excluirFormacaoComplementar(Integer idFormacaoComplementar);
	void addParticipacaoEvento(ParticipacaoEvento participacaoEvento);
	void excluirParticipacaoEvento(Integer idParticipacaoEvento);
	void addEsperienciaProfissional(EsperienciaProfissional esperienciaProfissional);
	void excluirEsperienciaProfissional(Integer idEsperienciaProfissional);
	void addLinguaEstrangeira(LinguaEstrangeira linguaEstrangeira);
	void excluirLinguaEstrangeira(Integer idLinguaEstrangeira);
	
	void alterarConhecimentoInformativa(Integer idUsuarioProfissional, Boolean msExcel, Boolean msPowerpoint, Boolean msWord);
	void descadastrar(UsuarioDescadastrado usuarioDescadastrado);
	
	/* metodos usados pelo administrador */
	List<UsuarioProfissional> consultarTodos();
	void excluirUsuario(Integer idUsuarioProfissional);
}